#ifndef __POSEESTER_H__
#define __POSEESTER_H__

#include "opencv2/opencv.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <vector>
#include <iostream>

#include "MatWork.hpp"

using namespace cv; 
using namespace std;


class PoseEster
{

public: 

	struct CamParameters {
		double rho_u, rho_v, uc, vc;
		double dist1, dist2, dist3;
	};

	PoseEster(string ParamFile);

	PoseEster(FileStorage fs);

	~PoseEster();

	int getPose(Mat p, Mat& P, double working_dist);


private:

	FileStorage fs;

	Mat CamMat, DistCoeff;

	CamParameters CamParams; // need to fix declaration problem => bring public part forward


};

#endif